package com.yuhuihui.common.utils;


import com.yuhuihui.common.annotation.verify.Verify;

/**
 * integer工具类
 *
 * @author yuhh
 * @date 2023-05-25 14:19:08
 */
public final class IntegerUtil {

    /**
     * int转指定长度的String，长度不够的右边补0，直到长度等于指定的长度
     *
     * @param value        需要转换的值
     * @param stringLength 指定字符串长度
     * @return {@link String }
     * @author yuhh
     * @date 2023-05-25 14:19:59
     */
    @Verify
    public static String intToStringLeftSupplementZero(int value, int stringLength){
        return intToStringLeftSupplement(value, stringLength, 0);
    }

    /**
     * int转指定长度的String，长度不够的右边补充指定的值，直到长度等于指定的长度
     *
     * @param value           需要转换的值
     * @param stringLength    指定字符串长度
     * @param supplementValue 需要补充的值
     * @return {@link String }
     * @author yuhh
     * @date 2023-05-25 14:19:26
     */
    @Verify
    private static String intToStringLeftSupplement(int value, int stringLength, Object supplementValue){
        String valueStr = String.valueOf(value);
        // 当指定字符串长度小于等于需要转换的值时，直接返回需要转换的值
        if (valueStr.length() >= stringLength){
            return valueStr;
        }
        // 指定字符串长度与需要转换的值的长度的差值
        int defLength = stringLength - valueStr.length();
        StringBuilder zeroString = new StringBuilder();
        for (int i = 0; i < defLength; i ++){
            zeroString.append(supplementValue);
        }
        return zeroString.append(valueStr).toString();
    }

    private IntegerUtil(){

    }
}
